01 第一人称项目创建
第一步:安装 Unreal Engine 5 与运行环境
UE5 即虚幻引擎 5 Unreal Engine 5,是 Epic Games 开发的一款强大的游戏引擎,所以第一步是安装 Epic Games Launcher。
没错,Epic 作为对标 Steam 的游戏平台,将其旗下的游戏引擎也集成到当前的 Launcher 中,这里不多赘述,直接进入 UE5 的安装界面,选择 Unreal Engine 选项卡,点击安装即可。 安装完成后,打开 Unreal Engine 选项卡,点击 Launch 启动 UE5 编辑器。
在正式开发前,你创建项目时可能会遇到一些问题,比如编译失败,这是因为你缺少了 CPP 和 C# 的开发环境。 虽然ue的项目语言是 cpp,但它的编译工具链是基于 C# 的,所以你在Windows系统上至少需要安装 Visual Studio Installer。
在 Visual Studio Installer 中,选择安装以下组件:
- 工作负荷中勾选 使用 C++ 的桌面开发
- 单个组件中勾选 .NET Framework 4.7 及以上版本的 SDK。
我这里安装的是 Visual Studio生成工具 2026 与 .NET Framework 4.8.1 SDK,安装完成后重新打开 UE5 编辑器,创建项目就不会再出现编译失败的问题了。 我个人是不太喜欢使用 Visual Studio 作为 ide 的,使用这里只安装了生成工具,我更习惯使用 vscode 来编写代码。
使用 vscode 编写 UE5 代码
如果你也想使用 vscode 来编写 UE5 的代码,这里要安装以下插件:
- C/C++ Extension Pack,这个插件包包含了 C/C++ 的基础功能,代码高亮、智能提示、调试等。
然后在打开的 ue5 编辑器中,点击 编辑 -> 编辑器偏好设置 -> 左侧选择通用 -> 源代码 -> 选择 Visual Studio Code 作为默认的代码编辑器。
关闭 设置,在顶部操作栏中,选择工具-> 刷新 Visual Studio Code 项目文件,这样就会生成一个 .vscode 的文件夹,里面包含了 vscode 的项目配置文件,之后你就可以使用 vscode 来编写 UE5 的代码了。
第二步:创建第一人称项目
在启动 UE5 编辑器后,可以看见 ue 官方已经提供了许多的项目模板,方便我们快速上手。这里我们选择第一人称项目模板,选择 C++ 语言,点击 Create 创建项目。
在创建完的 Cpp 项目中,我们关注的主要是以下几个文件夹:
- Content:存放游戏资源的文件夹,包括材质、纹理、模型等。我们地图关卡、人物模型、蓝图动画等都是放在这个文件夹下的。
- Source:存放 C++ 代码的文件夹,包含游戏逻辑和功能实现,我们在这里编写游戏的核心代码。
- Config:存放项目配置文件的文件夹,包含引擎和游戏的设置。
在 Content 文件夹中,我们可以看到一些预设的资源,比如 StarterContent,这些资源可以帮助我们快速搭建游戏场景和测试功能。
Step-1: 为了更好的组织我们的项目,我们可以在 Content 文件夹下创建一个新的文件夹,命名为 MyGame,用来存放我们自己的游戏资源和蓝图。
Config 文件夹中包含了 DefaultEngine.ini、DefaultGame.ini 等配置文件,这些文件用于设置引擎和游戏的各种参数,比如输入设置、渲染设置等,在我们多人协作开发时,这些配置文件也应该被版本控制系统管理,确保团队成员之间的配置一致。
Source 文件夹中包含了 MyGame 项目的 C++ 代码,主要有以下几个文件:
- MyGame.Build.cs:这个文件用于定义项目的构建规则和依赖关系,我们可以在这里添加第三方库或者模块。
- MyGame.cpp:这个文件是项目的主入口,包含了实现模块的启动和关闭逻辑。
- MyGame.h:这个文件是项目的主头文件,包含了模块的声明和接口定义。
Step-2: 项目中会包含一些预设的 C++ 类,和两个预设的变体,我们在 Resource 文件夹中创建一个我们的游戏资源文件夹 MyGame,用于存放我们自己的游戏资源和蓝图。
为了更好的管理与共享代码与资源,我们需要使用版本控制系统来管理我们的项目。这里我以 Git 为例,创建一个新的 Git 仓库,并将项目文件夹添加到版本控制中。
游戏开发中,Content 文件夹中的资源文件通常比较大,如果你打算托管到 GitHub 上,使用 Git Lfs 是一种方式,你可以配置 .gitattributes 文件来指定哪些文件类型使用 Git Lfs 来管理:
# 使用 Git LFS 管理大型二进制文件
*.uasset filter=lfs diff=lfs merge=lfs -text
*.umap filter=lfs diff=lfs merge=lfs -text但LFS在开源时是不太友好的,所以我个人更倾向于将 Content 文件夹中的资源文件排除在版本控制之外。 因为我暂时没有将Content用于协作,所以我倾向于将其添加到.gitignore 文件中,并在发布版本时打包上传资源文件到 GitHub Releases中。 如果你有需要将 Content 文件夹中的资源文件纳入版本控制与团队协作,更好的办法是搭建一个私有的 Git 服务器。
所以:
Step-3: 在项目根目录下创建一个 .gitignore 文件,添加以下内容来排除 Content 文件夹中的资源文件:
# 虚幻引擎临时文件和缓存
Binaries/ # 编译生成的二进制文件
DerivedDataCache/ # DDC 是UE5 用于缓存编译结果和资源的文件夹
Intermediate/ # UE5 在编译过程中生成的中间文件夹
Saved/ # UE5 的保存文件夹,包含日志、自动保存的关卡等
Content/ # UE5 的资源文件夹,通常比较大
Build/ # UE5 的构建文件夹
# VSCode 及其他 IDE 生成文件
.vscode/
.vs/
*.sln
*.suo
*.opendb
*.VC.db
*.opensdf
*.sdf
*.xcworkspace
*.xcodeprojStep-4: 将项目文件夹添加到 Git 仓库中,并提交初始版本:
git init
git add .
git commit -m "feat(init): 初始化第一人称项目"第三步:启动模版并修改源码编译
在 UE5 编辑器中,点击 Play 按钮,启动第一人称项目的预设场景,我们可以看到一个简单的关卡和一个可控制的角色。
在Content 文件夹中,我们可以找到两个预设的变体,对应的文件夹下也有对应的关卡,我们可以打开这些关卡来查看和游玩一下。
这时候用 vscode 打开项目修改代码,比如创建新的 C++ 类,或者修改现有的 C++ 类。 你可能会遇到发现编辑器的C++与代码不一致,这是很正常的,因为ue5 加载的是 dll 文件,而不是直接加载 cpp 文件,所以当你修改了 cpp 文件后,需要重新编译项目,生成新的 dll 文件,编辑器才能加载新的代码。
方法为,在 UE5 编辑器中按快捷键 ctrl + alt + F11 启动 live coding 模式,这样当你修改了 cpp 文件后,编辑器会自动重新编译项目,并加载新的 dll 文件,这样你就可以在编辑器中看到你的代码修改的效果了。
如果这些步骤你都完成了,那么恭喜你,你已经成功创建了一个基于 UE5 的第一人称项目,并且能够在编辑器中启动预设场景,修改代码并看到效果了。
::: tips .cpp 与 .h C++ 代码通常分为头文件 (.h) 和源文件 (.cpp)。 头文件用于声明类、函数和变量,而源文件用于实现这些声明的具体逻辑。 当你创建一个新的 C++ 类时,UE5 会自动生成对应的 .h 和 .cpp 文件,你需要在 .h 文件中声明你的类和成员函数,在 .cpp 文件去实现这些函数的具体逻辑。
这一点是与其他一些语言不同的,比如 C# 或者 Python,通常都是在一个文件中同时声明和实现的,而 C++ 则是分开的,所以导入其他的代码库时,你需要在 .h 文件中包含对应的头文件,在 .cpp 文件中包含对应的源文件,这样编译器才能正确地链接你的代码。 :::